// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

part of dart.core;

/**
 * 通用的数据缓冲池。
 *
 * 可以将多个数据值放入Sink中，当没有更多的数据可用时，应该关闭Sink。
 *
 * 这是其他数据接收端可以实现的、通用的接口。
 */
abstract class Sink<T> {
  /**
   * 将数据添加到Sink中。
   *
   * 在调用[close]后，不能执行添加操作。
   */
  void add(T data);

  /**
   * 告诉Sink没有更多的数据被添加。
   *
   * 这个方法可以被调用多次，但是什么也不会执行。
   *
   * 在调用这个方法后，[add]方法不能被调用。
   */
  void close();
}
